package com.ztorn.fiscale.service;

import java.util.List;
import com.ztorn.fiscale.domain.FiscaleRefundException;

/**
 * 配单异常记录Service接口
 * 
 * @author ztorn
 * @date 2025-09-20
 */
public interface IFiscaleRefundExceptionService 
{
    /**
     * 查询配单异常记录
     * 
     * @param exceptionId 配单异常记录ID
     * @return 配单异常记录
     */
    public FiscaleRefundException selectFiscaleRefundExceptionById(Long exceptionId);

    /**
     * 查询配单异常记录列表
     * 
     * @param fiscaleRefundException 配单异常记录
     * @return 配单异常记录集合
     */
    public List<FiscaleRefundException> selectFiscaleRefundExceptionList(FiscaleRefundException fiscaleRefundException);

    /**
     * 新增配单异常记录
     * 
     * @param fiscaleRefundException 配单异常记录
     * @return 结果
     */
    public int insertFiscaleRefundException(FiscaleRefundException fiscaleRefundException);

    /**
     * 修改配单异常记录
     * 
     * @param fiscaleRefundException 配单异常记录
     * @return 结果
     */
    public int updateFiscaleRefundException(FiscaleRefundException fiscaleRefundException);

    /**
     * 批量删除配单异常记录
     * 
     * @param exceptionIds 需要删除的配单异常记录ID
     * @return 结果
     */
    public int deleteFiscaleRefundExceptionByIds(Long[] exceptionIds);

    /**
     * 删除配单异常记录信息
     * 
     * @param exceptionId 配单异常记录ID
     * @return 结果
     */
    public int deleteFiscaleRefundExceptionById(Long exceptionId);
    
    /**
     * 标记为异常
     * 
     * @param documentType 单据类型
     * @param documentId 单据ID
     * @param exceptionReason 异常原因
     * @param remark 备注
     * @return 结果
     */
    public int markAsException(String documentType, Long documentId, String exceptionReason, String remark);
}